package com.slt.jvm.mashibing.c5_gc;

//关闭 ：
// -XX:-DoEscapeAnalysis   ： 去掉逃逸分析
// -XX:-EliminateAllocations  ： 去掉标量替换
// -XX:-UseTLAB ： 去掉 TLAB分配
// -Xlog:c5_gc ：
// 逃逸分析 标量替换 线程专有对象分配

/**
 * 栈上分配
 */
public class TestTLAB {
    //User u;
    class User {
        int id;
        String name;

        public User(int id, String name) {
            this.id = id;
            this.name = name;
        }
    }

    void alloc(int i) {
        new User(i, "name " + i);
    }

    /**
     * 栈上分配 和 tlab 分配 默认打开
     *
     * @param args
     */
    public static void main(String[] args) {
        TestTLAB t = new TestTLAB();
        long start = System.currentTimeMillis();
        for(int i=0; i<1000_0000; i++)
            t.alloc(i);
        long end = System.currentTimeMillis();
        System.out.println(end - start);

        //for(;;);
    }
}
